package cn.gemiman.daoyi.module.iot.service.equipmentmsg;

import java.time.LocalDateTime;
import java.util.*;
import jakarta.validation.*;
import cn.gemiman.daoyi.module.iot.controller.admin.equipmentmsg.vo.*;
import cn.gemiman.daoyi.module.iot.dal.dataobject.equipmentmsg.EquipmentMsgDO;
import cn.gemiman.daoyi.framework.common.pojo.PageResult;
import cn.gemiman.daoyi.framework.common.pojo.PageParam;
import org.springframework.scheduling.annotation.Async;

/**
 * 设备消息 Service 接口
 *
 * @author 道一源码
 */
public interface EquipmentMsgService {

    void msgHandler(LocalDateTime msgTime, String msg);

    /**
     * 创建设备消息
     *
     * @param createReqVO 创建信息
     * @return 编号
     */
    Long createEquipmentMsg(@Valid EquipmentMsgSaveReqVO createReqVO);

    /**
     * 更新设备消息
     *
     * @param updateReqVO 更新信息
     */
    void updateEquipmentMsg(@Valid EquipmentMsgSaveReqVO updateReqVO);

    /**
     * 删除设备消息
     *
     * @param id 编号
     */
    void deleteEquipmentMsg(Long id);

    /**
     * 获得设备消息
     *
     * @param id 编号
     * @return 设备消息
     */
    EquipmentMsgDO getEquipmentMsg(Long id);

    /**
     * 获得设备消息分页
     *
     * @param pageReqVO 分页查询
     * @return 设备消息分页
     */
    PageResult<EquipmentMsgDO> getEquipmentMsgPage(EquipmentMsgPageReqVO pageReqVO);

}
